package com.rz.htk.product.service;

import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.rz.htk.print.entity.PrintTemplate;
import com.rz.htk.product.entity.Product;
import com.rz.htk.product.entity.vo.PrdDeleteParam;

import java.util.List;

/**
 * @ClassName IProductService
 * @Description 产品service
 * @Author maweiyue
 * @Date 2019/3/26 20:37
 */
public interface IProductService extends IService<Product> {

    List<Product> listAll();

    IPage<Product> getPage(Product product);

    boolean batchDelete(PrdDeleteParam prdDeleteParam);

    boolean saveProduct(Product product);

    /**
     * 根据产品名称获取产品列表
     * @param prdName
     * @return
     */
    List<Product> listProductByName(String prdName);

    /**
     * 根据产品编号获取产品列表
     * @param prdCode
     * @return
     */
    Product getProductByCode(String prdCode);

    /**
     * 根据产品编号获取产品列表
     * @param prdCodes 产品编号集合
     * @return
     */
    List<Product> listProductByCodes(List<String> prdCodes);

    /**
     * 获取所有产品列表，包括产品资费列表
     * @return
     */
    List<Product> listAllProduct();

    /**
     * 获取产品详情下拉列表（产品-产品资费）
     * @return
     */
    JSONArray selectProductDtails();

    /**
     * 获取产品下拉列表
     * @return
     */
    JSONArray selectAllProduct();

    /**
     * 根据国家代码获取产品详情下拉列表
     * @param code 国家代码
     * @return
     */
    JSONArray selectProductDtailsByCountry(String code);

    /**
     * 根据目的地国家代码获取适用的产品列表
     * @param country
     * @return
     */
    List<Product> listProductByCountry(String country);

    PrintTemplate getTemplateByPrdId(Integer prdId);
}
